//== Class Definition var SnippetLogin = function() { var login = $('#m_login'); var showErrorMsg = function(form, type, msg) { var alert = $(''); form.find('.alert').remove(); alert.prependTo(form); //alert.animateClass('fadeIn animated'); mUtil.animateClass(alert[0], 'fadeIn animated'); alert.find('span').html(msg); } //== Private Functions var displaySignUpForm = function() { login.removeClass('m-login--forget-password'); login.removeClass('m-login--signin'); login.removeClass('m-login--resend-activation'); login.removeClass('m-login--login-firsttime'); login.addClass('m-login--signup'); mUtil.animateClass(login.find('.m-login__signup')[0], 'flipInX animated'); } var displaySignInForm = function() { login.removeClass('m-login--forget-password'); login.removeClass('m-login--signup'); login.removeClass('m-login--resend-activation'); login.removeClass('m-login--login-firsttime'); login.addClass('m-login--signin'); mUtil.animateClass(login.find('.m-login__signin')[0], 'flipInX animated'); //login.find('.m-login__signin').animateClass('flipInX animated'); } var displayForgetPasswordForm = function() { login.removeClass('m-login--signin'); login.removeClass('m-login--signup'); login.removeClass('m-login--resend-activation'); login.removeClass('m-login--login-firsttime'); login.addClass('m-login--forget-password'); //login.find('.m-login__forget-password').animateClass('flipInX animated'); mUtil.animateClass(login.find('.m-login__forget-password')[0], 'flipInX animated'); } var displayResendActivationLinkForm = function () { login.removeClass('m-login--signin'); login.removeClass('m-login--signup'); login.removeClass('m-login--forget-password'); login.removeClass('m-login--login-firsttime'); login.addClass('m-login--resend-activation'); //login.find('.m-login__forget-password').animateClass('flipInX animated'); mUtil.animateClass(login.find('.m-login__resend-activation')[0], 'flipInX animated'); } var displayLoginFirstTimeForm = function () { login.removeClass('m-login--signin'); login.removeClass('m-login--signup'); login.removeClass('m-login--forget-password'); login.removeClass('m-login--resend-activation'); login.addClass('m-login--login-firsttime'); //login.find('.m-login__forget-password').animateClass('flipInX animated'); mUtil.animateClass(login.find('.m-login__login-firsttime')[0], 'flipInX animated'); } var handleFormSwitch = function () { $('#m-login_firsttime').click(function (e) { e.preventDefault(); displayLoginFirstTimeForm(); }); $('#m_login_forget_password').click(function(e) { e.preventDefault(); displayForgetPasswordForm(); }); $('#m-login_resendactivation').click(function (e) { console.log("dah click"); e.preventDefault(); displayResendActivationLinkForm(); }); $('#m_login_login_firsttime_cancel').click(function(e) { e.preventDefault(); displaySignInForm(); }); $('#m_login_forget_password_cancel').click(function (e) { e.preventDefault(); displaySignInForm(); }); $('#m_login_resend_activation_cancel').click(function (e) { e.preventDefault(); displaySignInForm(); }); $('#m_login_signup').click(function(e) { e.preventDefault(); displaySignUpForm(); }); $('#m_login_signup_cancel').click(function(e) { e.preventDefault(); displaySignInForm(); }); } var handleSignInFormSubmit = function() { $('#m_login_signin_submit').click(function(e) { e.preventDefault(); var btn = $(this); var form = $(this).closest('form'); form.validate({ rules: { email: { required: true, email: true }, password: { required: true } } }); if (!form.valid()) { return; } btn.addClass('m-loader m-loader--right m-loader--light').attr('disabled', true); form.ajaxSubmit({ url: '', success: function(response, status, xhr, $form) { // similate 2s delay setTimeout(function() { btn.removeClass('m-loader m-loader--right m-loader--light').attr('disabled', false); showErrorMsg(form, 'danger', 'Incorrect username or password. Please try again.'); }, 2000); } }); }); } var handleSignUpFormSubmit = function() { $('#m_login_signup_submit').click(function(e) { e.preventDefault(); var btn = $(this); var form = $(this).closest('form'); form.validate({ rules: { fullname: { required: true }, email: { required: true, email: true }, password: { required: true }, rpassword: { required: true }, agree: { required: true } } }); if (!form.valid()) { return; } btn.addClass('m-loader m-loader--right m-loader--light').attr('disabled', true); form.ajaxSubmit({ url: '', success: function(response, status, xhr, $form) { // similate 2s delay setTimeout(function() { btn.removeClass('m-loader m-loader--right m-loader--light').attr('disabled', false); form.clearForm(); form.validate().resetForm(); // display signup form displaySignInForm(); var signInForm = login.find('.m-login__signin form'); signInForm.clearForm(); signInForm.validate().resetForm(); showErrorMsg(signInForm, 'success', 'Thank you. To complete your registration please check your email.'); }, 2000); } }); }); } var handleForgetPasswordFormSubmit = function() { $('#m_login_forget_password_submit').click(function(e) { e.preventDefault(); var btn = $(this); var form = $(this).closest('form'); form.validate({ rules: { email: { required: true, email: true } } }); if (!form.valid()) { return; } btn.addClass('m-loader m-loader--right m-loader--light').attr('disabled', true); form.ajaxSubmit({ url: '', success: function(response, status, xhr, $form) { // similate 2s delay setTimeout(function() { btn.removeClass('m-loader m-loader--right m-loader--light').attr('disabled', false); // remove form.clearForm(); // clear form form.validate().resetForm(); // reset validation states // display signup form displaySignInForm(); var signInForm = login.find('.m-login__signin form'); signInForm.clearForm(); signInForm.validate().resetForm(); showErrorMsg(signInForm, 'success', 'Cool! Password recovery instruction has been sent to your email.'); }, 2000); } }); }); } //== Public Functions return { // public functions init: function() { handleFormSwitch(); handleSignInFormSubmit(); handleSignUpFormSubmit(); handleForgetPasswordFormSubmit(); } }; }(); //== Class Initialization jQuery(document).ready(function() { SnippetLogin.init(); });